﻿using System;
//using fastJSON;
//using Sx.Utils.Castle.DynamicProxy;
using Newtonsoft.Json;

namespace Sx.Utils
{
    public static class JsonHelper
    {
        //static JsonHelper() {
        //    JSON.Parameters = new JSONParameters { EnableAnonymousTypes = true, UseFastGuid = true, UseUTCDateTime = false, UseEscapedUnicode= true };
        //}
        public static string ToJson(object o)
        {
            return JsonConvert.SerializeObject(o);
            //return JSON.ToJSON(o);
        }
        //public static string ToJson(object o, JSONParameters parameters)
        //{
        //    return JSON.ToJSON(o, parameters);
        //}
        public static object ToObject(string s,Type t)
        {
            return JsonConvert.DeserializeObject(s,t);
        }
        public static T ToObject<T>(string s)
        {
            if (s.IsNullOrEmpty())
            {
                return default(T);
            }
            return JsonConvert.DeserializeObject<T>(s);
            //return JSON.ToObject<T>(s);
        }
        //public static T ToObject<T>(string s, JSONParameters parameters)
        //{

        //    return JSON.ToObject<T>(s, parameters);
        //}

        //public static string GetValue(string s, string key)
        //{
        //    return JSON.ToObject<Dictionary<string,string>>(s)[key];
        //}
    }
}
